Skill

JSP এ কাস্টম ট্যাগ ব্যবহার

Java Technologies - জেএসপি (JSP)
199

কাস্টম ট্যাগ হল জেএসপি (JSP) এর একটি শক্তিশালী বৈশিষ্ট্য যা ডেভেলপারদের তাদের নিজস্ব ট্যাগ তৈরি করতে সহায়তা করে। এই কাস্টম ট্যাগগুলোর মাধ্যমে আপনি নির্দিষ্ট কার্যকারিতা বা লজিক বিভিন্ন পেজে পুনঃব্যবহার করতে পারেন, যা কোড রিফ্যাক্টরিং এবং পুনঃব্যবহারযোগ্যতা বাড়ায়। জেএসপি কাস্টম ট্যাগ সাধারণত ট্যাগ লাইব্রেরি (Tag Library) এর মাধ্যমে ব্যবহৃত হয়, এবং এতে JSP ট্যাগ লাইব্রেরি ডিফিনেশন ফাইল (TLD) প্রয়োজন হয়।

কাস্টম ট্যাগ কী?


কাস্টম ট্যাগ হল এমন একটি ট্যাগ যা জেএসপি পেজে ব্যবহারকারীর চাহিদা অনুযায়ী কার্যকরী কোড প্রদান করতে পারে। সাধারণ ট্যাগ যেমন <html>, <body> ইত্যাদি ব্যবহার করার পরিবর্তে, আপনি একটি কাস্টম ট্যাগ তৈরি করতে পারেন যা আপনার নিজের লজিক বা কার্যকারিতা সম্পাদন করবে।

কাস্টম ট্যাগ তৈরি করার ধাপ


কাস্টম ট্যাগ তৈরি করতে বেশ কিছু ধাপ অনুসরণ করতে হয়। এখানে একটি সহজ উদাহরণের মাধ্যমে কাস্টম ট্যাগ তৈরির প্রক্রিয়া দেখানো হলো।

১. কাস্টম ট্যাগের ক্লাস তৈরি করা

প্রথমে একটি Java ক্লাস তৈরি করতে হবে যা কাস্টম ট্যাগের কার্যকারিতা বাস্তবায়ন করবে। এই ক্লাসটি Tag ইন্টারফেস বা SimpleTagSupport ক্লাসের সাথে এক্সটেন্ড করবে।

উদাহরণ: একটি কাস্টম ট্যাগ তৈরি করা যা পেজে বর্তমান তারিখ দেখাবে।

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
import java.util.Date;

public class CurrentDateTag extends SimpleTagSupport {
    @Override
    public void doTag() throws JspException, IOException {
        Date currentDate = new Date();
        getJspContext().getOut().write(currentDate.toString());
    }
}

এখানে, CurrentDateTag নামের একটি ক্লাস তৈরি করা হয়েছে যা SimpleTagSupport ক্লাসটি এক্সটেন্ড করেছে। doTag() মেথডটি ট্যাগের কার্যকারিতা বাস্তবায়ন করে, যেখানে এটি বর্তমান তারিখ প্রিন্ট করবে।


২. ট্যাগ লাইব্রেরি ডিফিনেশন ফাইল (TLD) তৈরি করা

এরপর, একটি TLD ফাইল তৈরি করতে হবে, যা কাস্টম ট্যাগের বিবরণ এবং এর কার্যকারিতা সার্ভারকে জানাবে।

উদাহরণ: taglib.tld নামের একটি TLD ফাইল।

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1">
    <tag>
        <name>currentDate</name>
        <tag-class>CurrentDateTag</tag-class>
        <body-content>empty</body-content>
    </tag>
</taglib>

এখানে, name হল কাস্টম ট্যাগের নাম যা আপনি জেএসপি পেজে ব্যবহার করবেন এবং tag-class হল Java ক্লাসের পূর্ণ পাথ যা এই ট্যাগের কার্যকারিতা নিয়ন্ত্রণ করবে।


৩. JSP পেজে কাস্টম ট্যাগ ব্যবহার করা

এখন আপনি এই কাস্টম ট্যাগটি আপনার JSP পেজে ব্যবহার করতে পারেন। কাস্টম ট্যাগ ব্যবহার করতে taglib directive ব্যবহার করা হয় এবং ট্যাগের নামের সাথে মানানসই কাস্টম ট্যাগ ব্যবহার করা হয়।

উদাহরণ:

<%@ taglib uri="/WEB-INF/taglib.tld" prefix="custom" %>
<html>
<head>
    <title>JSP Custom Tag Example</title>
</head>
<body>
    <h2>Current Date: </h2>
    <custom:currentDate />
</body>
</html>

এখানে, taglib ডিরেকটিভের মাধ্যমে TLD ফাইলটি ইমপোর্ট করা হয়েছে এবং prefix (এখানে custom) দিয়ে কাস্টম ট্যাগের নাম ব্যবহার করা হয়েছে।


৪. কাস্টম ট্যাগের উন্নত বৈশিষ্ট্য

আপনি কাস্টম ট্যাগে আরও উন্নত বৈশিষ্ট্য যোগ করতে পারেন, যেমন:

  • এট্রিবিউট ব্যবহার: কাস্টম ট্যাগে অ্যাট্রিবিউট পাস করা যেতে পারে।
  • এনভায়রনমেন্ট ভ্যারিয়েবল ব্যবহার: যেমন সেশন বা অ্যাপ্লিকেশন স্কোপ ভ্যারিয়েবল।

উদাহরণ: কাস্টম ট্যাগে অ্যাট্রিবিউট ব্যবহার।

public class GreetingTag extends SimpleTagSupport {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void doTag() throws JspException, IOException {
        getJspContext().getOut().write("Hello, " + name);
    }
}

এখানে, name অ্যাট্রিবিউট ব্যবহার করা হয়েছে, যা ব্যবহারকারী কাছ থেকে প্রাপ্ত হবে।

JSP পেজে ব্যবহার:

<%@ taglib uri="/WEB-INF/taglib.tld" prefix="custom" %>
<html>
<head>
    <title>JSP Custom Tag with Attribute</title>
</head>
<body>
    <custom:greeting name="John" />
</body>
</html>

এখানে, greeting কাস্টম ট্যাগে name অ্যাট্রিবিউট দেওয়া হয়েছে যা কাস্টম ট্যাগের ক্লাসে প্রক্রিয়া করা হবে এবং "Hello, John" আউটপুট প্রদান করবে।


সারাংশ


কাস্টম ট্যাগগুলি জেএসপি (JSP) এর শক্তিশালী বৈশিষ্ট্য যা আপনাকে ওয়েব পেজের কার্যকারিতা ও লজিক পুনঃব্যবহারযোগ্যভাবে তৈরি করতে সহায়তা করে। আপনি Java ক্লাস তৈরি করে কাস্টম ট্যাগের কার্যকারিতা নির্ধারণ করতে পারেন এবং TLD ফাইল ব্যবহার করে এই ট্যাগগুলিকে JSP পেজে ইমপোর্ট করে ব্যবহার করতে পারেন।

Content added By

Custom Tag কি এবং এর প্রয়োজনীয়তা

147

কাস্টম ট্যাগ (Custom Tag) হল একটি ইউজার-ডিফাইন্ড ট্যাগ, যা জেএসপি পেজে ব্যবহৃত হয় এবং ডেভেলপারদের নিজেদের নির্দিষ্ট কার্যকলাপ বা লজিক বাস্তবায়ন করার জন্য ব্যবহৃত হয়। এটি সাধারণত জেএসপি স্ট্যান্ডার্ড ট্যাগ লাইব্রেরি (JSTL) এর বাইরে গিয়ে প্রয়োজনীয় কার্যকরী ট্যাগ তৈরি করতে ব্যবহৃত হয়।

জেএসপি কাস্টম ট্যাগ ব্যবহার করার মাধ্যমে ডেভেলপাররা তাদের নির্দিষ্ট চাহিদা অনুযায়ী HTML, JavaScript, অথবা ডাইনামিক কন্টেন্ট তৈরি করতে পারে যা জেএসপি পেজে সরাসরি ব্যবহৃত হতে পারে।

কাস্টম ট্যাগ তৈরির প্রয়োজনীয়তা


কাস্টম ট্যাগ ব্যবহারের মূল উদ্দেশ্য হল কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি, পেজের লজিকের বাইরে HTML কোড আলাদা করা এবং ডেভেলপারদের আরও কার্যকরী ট্যাগ তৈরি করার সুযোগ প্রদান করা। নিচে কিছু প্রধান প্রয়োজনীয়তা উল্লেখ করা হলো:

১. কোডের পুনঃব্যবহারযোগ্যতা


কাস্টম ট্যাগ তৈরি করার মাধ্যমে আপনি একটি নির্দিষ্ট লজিক বা কার্যক্রমকে একবার ডিফাইন করে পরে তা একাধিক জায়গায় ব্যবহার করতে পারেন। এটি কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে এবং একই কোড বারবার লেখার প্রয়োজনীয়তা কমিয়ে দেয়।

উদাহরণ: ধরা যাক, আপনি একটি কাস্টম ট্যাগ তৈরি করেছেন যা ইউজারের নাম প্রদর্শন করে। একবার এটি তৈরি করা হলে, আপনি এই ট্যাগটি একাধিক পেজে ব্যবহার করতে পারবেন।

২. লজিক এবং প্রেজেন্টেশন আলাদা করা


জেএসপি পেজে কোড লেখার সময় সাধারণত Java কোড এবং HTML মিশিয়ে লেখা হয়, যা কোডের পাঠযোগ্যতা কমিয়ে দেয়। কাস্টম ট্যাগ ব্যবহারের মাধ্যমে, Java লজিক এবং HTML কোড আলাদা রাখা সম্ভব হয়, ফলে কোড আরও পরিষ্কার এবং মেইন্টেনযোগ্য হয়।

উদাহরণ: কাস্টম ট্যাগের মাধ্যমে ডেটাবেস থেকে ডেটা নিয়ে HTML টেবিল তৈরি করা যেতে পারে, যেখানে জেএসপি কোড এবং Java লজিক একে অপর থেকে পৃথক থাকে।

৩. প্রয়োজনীয় ফিচার সংযোজন


কাস্টম ট্যাগ ব্যবহারের মাধ্যমে আপনি জেএসপি পেজে এমন ফিচার যোগ করতে পারেন যা সাধারণ স্ট্যান্ডার্ড ট্যাগে পাওয়া যায় না। যেমন, কিছু জটিল ফর্ম্যাটিং, কাস্টম লজিক ইত্যাদি।

উদাহরণ: একটি কাস্টম ট্যাগ তৈরি করা যেতে পারে যা ডেটাবেস থেকে ডেটা নিয়ে আসবে এবং তা একটি নির্দিষ্ট স্টাইল বা ফরম্যাটে প্রদর্শন করবে।

৪. ডাইনামিক কন্টেন্ট ম্যানিপুলেশন


কাস্টম ট্যাগ ব্যবহার করে ডেভেলপাররা ডাইনামিক কন্টেন্ট প্রসেসিং বা ম্যানিপুলেট করতে পারে। ট্যাগের মধ্যে Java কোড রেখে জেনারেল HTML কোডের বাইরে ডেটা প্রসেসিং করা সম্ভব হয়।

কাস্টম ট্যাগ তৈরির উদাহরণ


কাস্টম ট্যাগ তৈরি করতে মূলত Tag Handler Class এবং TLD (Tag Library Descriptor) ফাইল তৈরি করতে হয়। নিচে একটি সাধারণ কাস্টম ট্যাগ তৈরির উদাহরণ দেওয়া হল।

১. Tag Handler Class

package com.example;

import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
import java.io.IOException;

public class HelloTag extends TagSupport {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public int doStartTag() throws JspException {
        try {
            pageContext.getOut().write("Hello, " + name);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return SKIP_BODY;
    }
}

২. TLD (Tag Library Descriptor) ফাইল

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/jsp/taglib"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/jsp/taglib
        http://java.sun.com/xml/ns/jsp/taglib_2_0.xsd"
        version="2.0">
    <tag>
        <name>hello</name>
        <tag-class>com.example.HelloTag</tag-class>
        <body-content>empty</body-content>
        <attribute>
            <name>name</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
    </tag>
</taglib>

৩. JSP পেজে কাস্টম ট্যাগ ব্যবহার

<%@ taglib uri="http://www.example.com/tags" prefix="ex" %>
<ex:hello name="John" />

এখানে, HelloTag কাস্টম ট্যাগটি John নামের একটি আর্গুমেন্ট নিয়ে ব্যবহার করা হয়েছে এবং এটি "Hello, John" প্রদর্শন করবে।


সারাংশ:

কাস্টম ট্যাগগুলি জেএসপি পেজে ডেভেলপারদের জন্য নিজস্ব ট্যাগ তৈরি করার সুযোগ প্রদান করে। এর মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা বাড়ানো যায়, লজিক এবং প্রেজেন্টেশন আলাদা রাখা সম্ভব হয়, এবং আরও কার্যকরী ফিচার সংযোজন করা যায়। কাস্টম ট্যাগগুলি বিশেষ করে যখন স্ট্যান্ডার্ড ট্যাগ লাইব্রেরি প্রয়োজনীয় ফিচার সরবরাহ না করে, তখন বেশ কার্যকরী হয়।

Content added By

Tag Library Descriptor (TLD) ফাইল তৈরি করা

139

Tag Library Descriptor (TLD) একটি XML ফাইল যা একটি কাস্টম ট্যাগ লাইব্রেরি (Custom Tag Library) সংজ্ঞায়িত করে। এটি কাস্টম ট্যাগের বৈশিষ্ট্য, তাদের ব্যবহারের পদ্ধতি এবং তাদের সাথে সম্পর্কিত ক্লাস বা রিসোর্সের বিবরণ প্রদান করে। যখন আপনি জেএসপি (JSP) তে কাস্টম ট্যাগ ব্যবহার করতে চান, তখন আপনাকে একটি TLD ফাইল তৈরি করতে হবে যাতে ট্যাগগুলির বিবরণ এবং তাদের আচরণ সংজ্ঞায়িত করা হয়।

TLD ফাইলের গঠন


TLD ফাইলটি সাধারণত WEB-INF ফোল্ডারের মধ্যে রাখা হয় এবং এটি একটি XML ফাইল হয় যা কাস্টম ট্যাগের ডেফিনিশন ধারণ করে। TLD ফাইলটি দুইটি প্রধান অংশে বিভক্ত: taglib এবং tagtaglib ট্যাগ লাইব্রেরির বিবরণ ধারণ করে, এবং tag ট্যাগের বিবরণ দেয়।

TLD ফাইল তৈরি করার প্রক্রিয়া


১. TLD ফাইলের গঠন

TLD ফাইলের মৌলিক গঠন নিচে দেখানো হয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
                            http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version="2.0">
    
    <description>My Custom Tag Library</description>
    <display-name>Custom Tag Library</display-name>
    
    <tlib-version>1.0</tlib-version>
    <short-name>mytags</short-name>
    
    <uri>/WEB-INF/tlds/mytags.tld</uri>

    <tag>
        <name>greet</name>
        <tag-class>com.example.GreetTag</tag-class>
        <body-content>empty</body-content>
        <attribute>
            <name>name</name>
            <required>true</required>
            <rtexprvalue>false</rtexprvalue>
        </attribute>
    </tag>
</taglib>

এখানে:

  • taglib: এটি ট্যাগ লাইব্রেরির মেটাডেটা ধারণ করে, যেমন এর বিবরণ, সংস্করণ এবং URI।
  • description: লাইব্রেরির সাধারণ বর্ণনা।
  • display-name: লাইব্রেরির প্রদর্শন নাম।
  • tlib-version: ট্যাগ লাইব্রেরির সংস্করণ।
  • short-name: ট্যাগ লাইব্রেরির সংক্ষিপ্ত নাম যা পরে জেএসপি ফাইলে ব্যবহৃত হবে।
  • uri: লাইব্রেরির URI যা ট্যাগ লাইব্রেরির অবস্থান নির্দেশ করে।
  • tag: এটি একটি কাস্টম ট্যাগের সংজ্ঞা। এটি একটি name, tag-class, body-content, এবং প্রয়োজন হলে attribute ধারণ করে।

২. ট্যাগ ক্লাস তৈরি করা

এখন আপনাকে একটি ট্যাগ ক্লাস তৈরি করতে হবে যা জেএসপি ট্যাগের লজিক পরিচালনা করবে। নিচে একটি উদাহরণ দেওয়া হয়েছে:

package com.example;

import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
import java.io.IOException;

public class GreetTag extends TagSupport {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public int doStartTag() throws JspException {
        try {
            if (name != null) {
                pageContext.getOut().write("হ্যালো, " + name + "!");
            } else {
                pageContext.getOut().write("হ্যালো, বিশ্ব!");
            }
        } catch (IOException e) {
            throw new JspException("Error in GreetTag", e);
        }
        return SKIP_BODY; // Means no body content will be evaluated
    }
}

এখানে:

  • TagSupport ক্লাসটি কাস্টম ট্যাগ তৈরি করার জন্য ব্যবহৃত হয়।
  • doStartTag() মেথডটি ট্যাগটি রান হওয়ার সময় কল করা হয়।
  • setName() মেথডটি name অ্যাট্রিবিউট সেট করার জন্য ব্যবহৃত হয়।

৩. JSP ফাইলে ট্যাগ ব্যবহার করা

এখন আপনার তৈরি করা কাস্টম ট্যাগ লাইব্রেরি ব্যবহার করতে হবে একটি JSP পেজে। এর জন্য আপনাকে TLD ফাইলটি রেফারেন্স করতে হবে এবং কাস্টম ট্যাগ ব্যবহার করতে হবে।

<%@ taglib uri="/WEB-INF/tlds/mytags.tld" prefix="my" %>

<html>
    <body>
        <my:greet name="জন"></my:greet>
    </body>
</html>

এখানে:

  • <%@ taglib %> ডিরেকটিভটি TLD ফাইলটি রেফারেন্স করতে ব্যবহৃত হয়।
  • prefix="my" এটিকে ট্যাগের আগে দেওয়া হয় এবং পরে ট্যাগের নামের সাথে ব্যবহৃত হয় (যেমন my:greet )।

৪. TLD ফাইল এবং ট্যাগ ক্লাসের সংস্থান

TLD ফাইলটি আপনার ওয়েব অ্যাপ্লিকেশনের WEB-INF/tlds/ ফোল্ডারে রাখতে হবে এবং আপনার ট্যাগ ক্লাসটি WEB-INF/classes/ ফোল্ডারে রাখতে হবে। উদাহরণস্বরূপ:

/WEB-INF/
    /tlds/
        mytags.tld
    /classes/
        com/
            example/
                GreetTag.class

সারাংশ


TLD ফাইলগুলি কাস্টম ট্যাগের জন্য গুরুত্বপূর্ণ কারণ এগুলি ট্যাগের বৈশিষ্ট্য এবং তাদের ব্যবহারের নিয়মাবলী সংজ্ঞায়িত করে। JSP (Java Server Pages) তে কাস্টম ট্যাগ ব্যবহার করার জন্য TLD ফাইল তৈরি করা এবং সঠিকভাবে কনফিগার করা প্রয়োজন। এর মাধ্যমে আপনি নিজস্ব ট্যাগ তৈরি করে, আপনার অ্যাপ্লিকেশনে কার্যকরী ও পুনরায় ব্যবহারযোগ্য কম্পোনেন্ট অন্তর্ভুক্ত করতে পারবেন।

Content added By

কাস্টম ট্যাগ তৈরি এবং ব্যবহার

142

জেএসপি (JSP) তে কাস্টম ট্যাগ তৈরি এবং ব্যবহার করার মাধ্যমে আপনি HTML টেমপ্লেটের ভিতরে জাভা কোডের ব্যবহারকে আরও সহজ এবং শক্তিশালী করতে পারেন। কাস্টম ট্যাগ জেএসপি পেজে পুনরায় ব্যবহারের জন্য কিছু কার্যকলাপ বা লজিক কস্টমাইজডভাবে তৈরি করে দিতে সাহায্য করে। কাস্টম ট্যাগ তৈরির জন্য জেএসপি ট্যাগ লাইব্রেরি (JSP Tag Library) ব্যবহার করা হয়, যা সাধারণত JSP Standard Tag Library (JSTL) বা Custom Tags হিসেবে পরিচিত।

কাস্টম ট্যাগ তৈরি করার প্রক্রিয়া


১. ট্যাগ ক্লাস তৈরি করা

প্রথমে আপনাকে একটি Java ক্লাস তৈরি করতে হবে যা আপনার কাস্টম ট্যাগের লজিক সংরক্ষণ করবে। এই ক্লাসটি SimpleTagSupport বা TagSupport শ্রেণী থেকে এক্সটেন্ড করতে হবে।

এখানে একটি সাধারণ কাস্টম ট্যাগের ক্লাসের উদাহরণ দেওয়া হলো:

import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
import java.io.IOException;

public class MyCustomTag extends TagSupport {
    private String message;

    public void setMessage(String message) {
        this.message = message;
    }

    @Override
    public int doStartTag() throws JspException {
        try {
            pageContext.getOut().write("কাস্টম ট্যাগ মেসেজ: " + message);
        } catch (IOException e) {
            throw new JspException("Error in MyCustomTag", e);
        }
        return SKIP_BODY;
    }
}

এখানে, setMessage মেথডটি কাস্টম ট্যাগের message অ্যাট্রিবিউট সেট করার জন্য ব্যবহৃত হচ্ছে এবং doStartTag মেথডটি কাস্টম ট্যাগের জন্য কন্টেন্ট রেন্ডার করার জন্য ব্যবহৃত হচ্ছে। pageContext.getOut().write() মেথড ব্যবহার করে আমরা কাস্টম ট্যাগের আউটপুট ব্রাউজারে পাঠাচ্ছি।

২. ট্যাগ লাইব্রেরি ডেসক্রিপশন ফাইল (TLD) তৈরি করা

ট্যাগ লাইব্রেরি ডেসক্রিপশন ফাইল (TLD) হল একটি XML ফাইল যেখানে আপনার কাস্টম ট্যাগ সম্পর্কে তথ্য সংরক্ষিত থাকে। এই ফাইলটিতে আপনার তৈরি করা ট্যাগের নাম এবং ক্লাসের নাম সংজ্ঞায়িত করতে হবে।

/WEB-INF ফোল্ডারে একটি mytags.tld নামক TLD ফাইল তৈরি করুন এবং এর মধ্যে নিম্নলিখিত কনফিগারেশন যোগ করুন:

<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
                            http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version="2.0">
    <tag>
        <name>myTag</name>
        <tag-class>com.example.MyCustomTag</tag-class>
        <body-content>empty</body-content>
        <attribute>
            <name>message</name>
            <required>true</required>
        </attribute>
    </tag>
</taglib>

এখানে:

  • <name> ট্যাগের নামকে নির্দেশ করে যা জেএসপি পেজে ব্যবহৃত হবে।
  • <tag-class> কাস্টম ট্যাগের ক্লাসের নাম নির্দেশ করে।
  • <body-content> ট্যাগের শরীর কেমন হবে তা সংজ্ঞায়িত করে (এখানে empty মানে শরীর থাকবে না)।
  • <attribute> ট্যাগের অ্যাট্রিবিউটের নাম এবং সেটির প্রয়োজনীয়তা সংজ্ঞায়িত করে।

৩. JSP পেজে কাস্টম ট্যাগ ব্যবহার করা

একবার কাস্টম ট্যাগ তৈরি হলে এবং TLD ফাইল কনফিগার করা হলে, আপনি আপনার জেএসপি পেজে কাস্টম ট্যাগ ব্যবহার করতে পারবেন। প্রথমে, আপনি taglib ডিরেকটিভ ব্যবহার করে ট্যাগ লাইব্রেরি ইনক্লুড করতে হবে:

<%@ taglib prefix="custom" uri="/WEB-INF/mytags.tld" %>

এখানে, prefix="custom" দ্বারা আপনি ট্যাগের নামের আগে যে প্রিফিক্স ব্যবহার করবেন তা নির্ধারণ করছেন। এরপর, আপনি ট্যাগ ব্যবহার করতে পারেন:

<custom:myTag message="স্বাগতম, জেএসপি!" />

এখানে message অ্যাট্রিবিউটটি MyCustomTag ক্লাসের setMessage মেথডে পাস করা হবে, এবং ট্যাগের আউটপুট হিসাবে "কাস্টম ট্যাগ মেসেজ: স্বাগতম, জেএসপি!" প্রদর্শিত হবে।

সারাংশ


কাস্টম ট্যাগ তৈরি করা এবং ব্যবহার করা জেএসপি অ্যাপ্লিকেশনে অনেক কার্যকরী হতে পারে। এটি ডেভেলপারদের পুনরায় ব্যবহারের জন্য কাস্টম লজিক তৈরি করতে এবং ওয়েব পেজের মধ্যে জাভা কোডের উপস্থিতি কমাতে সাহায্য করে। ট্যাগ ক্লাস তৈরি করা, TLD ফাইল কনফিগার করা এবং জেএসপি পেজে ট্যাগ ব্যবহার করার মাধ্যমে আপনি কাস্টম ট্যাগ তৈরি ও ব্যবহার করতে পারবেন।

Content added By

উদাহরণ সহ Custom Tag ব্যবহার

196

JSP (Java Server Pages) তে Custom Tag হল একটি বিশেষ ধরনের ট্যাগ যা ব্যবহারকারীদের নিজস্ব লজিক এবং কার্যক্ষমতা সংজ্ঞায়িত করার সুযোগ দেয়। কাস্টম ট্যাগ ব্যবহারের মাধ্যমে আপনি পূর্বনির্ধারিত HTML বা JSP কোড ছাড়াও জাভা কোডের মধ্যে কার্যক্ষমতা ইনজেক্ট করতে পারেন। এই ট্যাগগুলো সাধারণত JSP Tag Libraries বা JavaBeans ব্যবহার করে তৈরি করা হয়।

কাস্টম ট্যাগ ব্যবহার করার মাধ্যমে ডেভেলপাররা পুনরায় ব্যবহারযোগ্য কোড তৈরি করতে পারেন, যা অ্যাপ্লিকেশনকে আরও সহজ, পরিষ্কার, এবং রক্ষণাবেক্ষণে সুবিধাজনক করে তোলে।

কাস্টম ট্যাগ তৈরি করার প্রক্রিয়া


কাস্টম ট্যাগ তৈরি করতে সাধারণত চারটি ধাপ অনুসরণ করতে হয়:

  1. ট্যাগ ক্লাস তৈরি: কাস্টম ট্যাগের জন্য জাভা ক্লাস তৈরি করা।
  2. ট্যাগ লাইব্রেরি ডেসক্রিপ্টর ফাইল তৈরি: ট্যাগ লাইব্রেরি কনফিগারেশন ফাইল তৈরি করা।
  3. JSP পেজে ট্যাগ ব্যবহার: তৈরি করা কাস্টম ট্যাগ JSP পেজে ব্যবহার করা।
  4. ট্যাগ হ্যান্ডলার তৈরি: ট্যাগ হ্যান্ডলার তৈরি করে কাস্টম ট্যাগের আচরণ নির্ধারণ করা।

উদাহরণ সহ কাস্টম ট্যাগ তৈরি


1. ট্যাগ ক্লাস তৈরি

প্রথমে, আমরা একটি কাস্টম ট্যাগ ক্লাস তৈরি করব। এটি TagSupport ক্লাসকে এক্সটেন্ড করবে, যা কাস্টম ট্যাগের জন্য বেসিক ফাংশনালিটি প্রদান করে।

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class HelloWorldTag extends TagSupport {
    
    private String name;
    
    public void setName(String name) {
        this.name = name;
    }

    public int doStartTag() throws JspException {
        try {
            if (name == null) {
                name = "World";
            }
            pageContext.getOut().print("Hello, " + name + "!");
        } catch (Exception e) {
            throw new JspException("Error in HelloWorldTag", e);
        }
        return SKIP_BODY;
    }
}

এখানে, HelloWorldTag ক্লাস একটি কাস্টম ট্যাগ তৈরি করছে যা একটি name প্যারামিটার নিয়ে, এবং সেই নামের সাথে একটি "Hello, [name]!" বার্তা প্রদর্শন করবে।


2. ট্যাগ লাইব্রেরি ডেসক্রিপ্টর ফাইল তৈরি

এখন আমাদের taglib descriptor ফাইল তৈরি করতে হবে। এই ফাইলটি আমাদের কাস্টম ট্যাগের জন্য কনফিগারেশন প্রদান করবে। এটি WEB-INF ফোল্ডারে taglib.tld নামে রাখা যাবে।

<?xml version="1.0" encoding="UTF-8"?>
<taglib>
    <tlib-version>1.0</tlib-version>
    <short-name>customTags</short-name>
    <uri>/WEB-INF/customTags</uri>
    <tag>
        <name>helloWorld</name>
        <tag-class>com.example.HelloWorldTag</tag-class>
        <body-content>empty</body-content>
    </tag>
</taglib>

এখানে, helloWorld নামে একটি কাস্টম ট্যাগ তৈরি করা হয়েছে এবং এর জন্য com.example.HelloWorldTag ক্লাসটি নির্দিষ্ট করা হয়েছে। এটি URI /WEB-INF/customTags এর অধীনে থাকবে।


3. JSP পেজে ট্যাগ ব্যবহার

এখন, আমরা আমাদের কাস্টম ট্যাগটি একটি JSP পেজে ব্যবহার করব। আমরা প্রথমে taglib directive দিয়ে ট্যাগ লাইব্রেরি যুক্ত করব, তারপর কাস্টম ট্যাগ ব্যবহার করব।

<%@ taglib uri="/WEB-INF/customTags" prefix="mytags" %>

<html>
<body>
    <mytags:helloWorld name="John"/>
</body>
</html>

এখানে, mytags হলো ট্যাগের জন্য দেয়া prefix এবং helloWorld হলো আমাদের কাস্টম ট্যাগ। name প্যারামিটারটি "John" এর সাথে পাঠানো হয়েছে।


4. ট্যাগ হ্যান্ডলার তৈরি

কাস্টম ট্যাগের হ্যান্ডলার ক্লাস তৈরি করা হয়েছে, যা ট্যাগের আচরণ নির্ধারণ করে। আমাদের উদাহরণে, এটি doStartTag() মেথডের মাধ্যমে "Hello, [name]!" বার্তা প্রদর্শন করে।


সার্বিক পর্যালোচনা


এই উদাহরণে, আমরা দেখলাম কিভাবে JSP তে কাস্টম ট্যাগ তৈরি এবং ব্যবহার করা যায়। কাস্টম ট্যাগ ডেভেলপ করা খুবই শক্তিশালী একটি কৌশল যা ওয়েব অ্যাপ্লিকেশনকে আরও পরিষ্কার এবং রক্ষণাবেক্ষণে সহজ করে তোলে। কাস্টম ট্যাগ ব্যবহার করে আপনি প্রোগ্রামিং লজিককে ওয়েব পেজের উপস্থাপনা থেকে আলাদা রাখতে পারেন, যা কোডের পুনরাবৃত্তি কমাতে এবং কোডের সুসংহততা বজায় রাখতে সহায়তা করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...